// pages/closure-notice/closure-notice.js
Page({
  data: {
    noticeList: [],
    loading: false,
    error: false,
    currentNotice: null,
    showDetailModal: false
  },

  onLoad(options) {
    // 页面加载时执行
    console.log('停诊通知页面加载');
    this.loadNoticeData();
  },

  onShow() {
    // 页面显示时刷新数据
    this.loadNoticeData();
  },

  // 加载停诊通知数据
  loadNoticeData() {
    this.setData({ loading: true, error: false });
    
    wx.request({
      url: 'http://localhost:8002/closure-notice/all',
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.code === 200) {
          const notices = res.data.data || [];
          console.log('获取停诊通知数据成功:', notices);
          
          // 处理数据，添加显示用的字段
          const processedNotices = notices.map(notice => ({
            ...notice,
            // 格式化时间显示
            publishTimeFormatted: this.formatTime(notice.publishTime),
            // 状态中文显示
            statusText: this.getStatusText(notice.status),
            // 优先级中文显示
            priorityText: this.getPriorityText(notice.priority),
            // 通知类型中文显示
            noticeTypeText: this.getNoticeTypeText(notice.noticeType)
          }));
          
          this.setData({ 
            noticeList: processedNotices,
            loading: false 
          });
        } else {
          console.error('获取停诊通知失败:', res.data);
          this.setData({ 
            error: true, 
            loading: false 
          });
        }
      },
      fail: (err) => {
        console.error('获取停诊通知失败:', err);
        this.setData({ 
          error: true, 
          loading: false 
        });
        // 加载失败时显示默认数据
        this.loadDefaultData();
      }
    });
  },

  // 加载默认数据（兜底）
  loadDefaultData() {
    const defaultNotices = [
      {
        id: 1,
        title: '心内科停诊通知',
        status: 'active',
        statusText: '生效中',
        department: '心内科',
        doctor: '张医生',
        closureTimeDesc: '2025年8月10日-8月12日',
        resumeTimeDesc: '2025年8月13日',
        reason: '张医生因参加学术会议，暂停门诊服务。',
        suggestion: '建议患者可选择其他心内科医生就诊，或改期至8月13日后就诊。',
        publishTimeFormatted: '2025-08-05 14:30',
        priorityText: '中等',
        noticeTypeText: '医生停诊'
      },
      {
        id: 2,
        title: '儿科停诊通知',
        status: 'active',
        statusText: '生效中',
        department: '儿科',
        doctor: '李医生',
        closureTimeDesc: '2025年8月15日',
        resumeTimeDesc: '2025年8月16日',
        reason: '李医生因个人事务请假一天。',
        suggestion: '建议选择其他儿科医生就诊，或改期至8月16日就诊。',
        publishTimeFormatted: '2025-08-10 09:15',
        priorityText: '低',
        noticeTypeText: '医生停诊'
      }
    ];
    
    this.setData({ 
      noticeList: defaultNotices,
      loading: false 
    });
  },

  // 查看通知详情
  viewNoticeDetail(e) {
    const notice = e.currentTarget.dataset.notice;
    this.setData({
      currentNotice: notice,
      showDetailModal: true
    });
  },

  // 关闭详情弹窗
  closeDetailModal() {
    this.setData({
      showDetailModal: false,
      currentNotice: null
    });
  },

  // 重新加载数据
  retryLoad() {
    this.loadNoticeData();
  },

  // 格式化时间
  formatTime(timeStr) {
    if (!timeStr) return '';
    const date = new Date(timeStr);
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    const hours = String(date.getHours()).padStart(2, '0');
    const minutes = String(date.getMinutes()).padStart(2, '0');
    return `${year}-${month}-${day} ${hours}:${minutes}`;
  },

  // 获取状态中文文本
  getStatusText(status) {
    const statusMap = {
      'active': '生效中',
      'inactive': '已结束',
      'expired': '已过期'
    };
    return statusMap[status] || status;
  },

  // 获取优先级中文文本
  getPriorityText(priority) {
    const priorityMap = {
      'low': '低',
      'medium': '中等',
      'high': '高',
      'urgent': '紧急'
    };
    return priorityMap[priority] || priority;
  },

  // 获取通知类型中文文本
  getNoticeTypeText(noticeType) {
    const typeMap = {
      'doctor': '医生停诊',
      'department': '科室停诊',
      'emergency': '紧急停诊'
    };
    return typeMap[noticeType] || noticeType;
  },

  // 下拉刷新
  onPullDownRefresh() {
    this.loadNoticeData();
    wx.stopPullDownRefresh();
  },

  // 分享
  onShareAppMessage() {
    return {
      title: '停诊通知',
      path: '/pages/closure-notice/closure-notice'
    };
  },

  // 空方法，防止事件冒泡
  noop() {}
});
